package com.group01.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 订单表
 * @TableName es_order
 */
@TableName(value ="es_order")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order implements Serializable {
    /**
     * 订单编号
     */
    @TableId
    private String id;

    /**
     * 下单用户
     */
    private Integer userId;

    /**
     * 创建订单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;

    /**
     * 支付方式
     */
    private String payWay;

    /**
     * 快递单号
     */
    private Integer trackingNumber;

    /**
     * 配送方式
     */
    private String distributionMode;

    /**
     * 订单状态
1.已创建未支付
2.已支付未发货
3.已发货未收货
4.已收货
5.已关闭 只能关闭 已创建未支付的订单
     */
    private Integer status;

    /**
     * 支付时间
     */
    private LocalDateTime payDate;

    /**
     * 收货人姓名
     */
    private String receiveUsername;

    /**
     * 收货地址
     */
    private String receiveAddress;

    /**
     * 收货人电话
     */
    private String receivePhone;

    /**
     * 用户姓名
     */
    @TableField(exist = false)
    private String username;

    /**
     * 商品总价（外键关联order_item表的goods_id,然后goods_id关联commodity表的price
     * 数量关联order_item表的num
     */
    @TableField(exist = false)
    private Double totalPrice;

    /**
     * 商品数量（外键关联order_item表的num）
     */
    @TableField(exist = false)
    private Integer totalNum;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}